package com.eshop.tools.domain.vo;

import java.sql.Date;
import java.sql.Timestamp;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;

public class TradeVo
{
    @NotBlank
    private String body;
    @NotBlank
    private String subject;
    @ApiModelProperty(hidden = true)
    private String outTradeNo;
    @ApiModelProperty(hidden = true)
    private String tradeNo;
    @NotBlank
    private String totalAmount;
    @ApiModelProperty(hidden = true)
    private String state;
    @ApiModelProperty(hidden = true)
    private Timestamp createTime;
    @ApiModelProperty(hidden = true)
    private Date cancelTime;
    
    public String getBody() {
        return this.body;
    }
    
    public String getSubject() {
        return this.subject;
    }
    
    public String getOutTradeNo() {
        return this.outTradeNo;
    }
    
    public String getTradeNo() {
        return this.tradeNo;
    }
    
    public String getTotalAmount() {
        return this.totalAmount;
    }
    
    public String getState() {
        return this.state;
    }
    
    public Timestamp getCreateTime() {
        return this.createTime;
    }
    
    public Date getCancelTime() {
        return this.cancelTime;
    }
    
    public void setBody(final String body) {
        this.body = body;
    }
    
    public void setSubject(final String subject) {
        this.subject = subject;
    }
    
    public void setOutTradeNo(final String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }
    
    public void setTradeNo(final String tradeNo) {
        this.tradeNo = tradeNo;
    }
    
    public void setTotalAmount(final String totalAmount) {
        this.totalAmount = totalAmount;
    }
    
    public void setState(final String state) {
        this.state = state;
    }
    
    public void setCreateTime(final Timestamp createTime) {
        this.createTime = createTime;
    }
    
    public void setCancelTime(final Date cancelTime) {
        this.cancelTime = cancelTime;
    }
    
    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof TradeVo)) {
            return false;
        }
        final TradeVo other = (TradeVo)o;
        if (!other.canEqual(this)) {
            return false;
        }
        final Object this$body = this.getBody();
        final Object other$body = other.getBody();
        Label_0065: {
            if (this$body == null) {
                if (other$body == null) {
                    break Label_0065;
                }
            }
            else if (this$body.equals(other$body)) {
                break Label_0065;
            }
            return false;
        }
        final Object this$subject = this.getSubject();
        final Object other$subject = other.getSubject();
        Label_0102: {
            if (this$subject == null) {
                if (other$subject == null) {
                    break Label_0102;
                }
            }
            else if (this$subject.equals(other$subject)) {
                break Label_0102;
            }
            return false;
        }
        final Object this$outTradeNo = this.getOutTradeNo();
        final Object other$outTradeNo = other.getOutTradeNo();
        Label_0139: {
            if (this$outTradeNo == null) {
                if (other$outTradeNo == null) {
                    break Label_0139;
                }
            }
            else if (this$outTradeNo.equals(other$outTradeNo)) {
                break Label_0139;
            }
            return false;
        }
        final Object this$tradeNo = this.getTradeNo();
        final Object other$tradeNo = other.getTradeNo();
        Label_0176: {
            if (this$tradeNo == null) {
                if (other$tradeNo == null) {
                    break Label_0176;
                }
            }
            else if (this$tradeNo.equals(other$tradeNo)) {
                break Label_0176;
            }
            return false;
        }
        final Object this$totalAmount = this.getTotalAmount();
        final Object other$totalAmount = other.getTotalAmount();
        Label_0213: {
            if (this$totalAmount == null) {
                if (other$totalAmount == null) {
                    break Label_0213;
                }
            }
            else if (this$totalAmount.equals(other$totalAmount)) {
                break Label_0213;
            }
            return false;
        }
        final Object this$state = this.getState();
        final Object other$state = other.getState();
        Label_0250: {
            if (this$state == null) {
                if (other$state == null) {
                    break Label_0250;
                }
            }
            else if (this$state.equals(other$state)) {
                break Label_0250;
            }
            return false;
        }
        final Object this$createTime = this.getCreateTime();
        final Object other$createTime = other.getCreateTime();
        Label_0287: {
            if (this$createTime == null) {
                if (other$createTime == null) {
                    break Label_0287;
                }
            }
            else if (this$createTime.equals(other$createTime)) {
                break Label_0287;
            }
            return false;
        }
        final Object this$cancelTime = this.getCancelTime();
        final Object other$cancelTime = other.getCancelTime();
        if (this$cancelTime == null) {
            if (other$cancelTime == null) {
                return true;
            }
        }
        else if (this$cancelTime.equals(other$cancelTime)) {
            return true;
        }
        return false;
    }
    
    protected boolean canEqual(final Object other) {
        return other instanceof TradeVo;
    }
    
    @Override
    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $body = this.getBody();
        result = result * 59 + (($body == null) ? 43 : $body.hashCode());
        final Object $subject = this.getSubject();
        result = result * 59 + (($subject == null) ? 43 : $subject.hashCode());
        final Object $outTradeNo = this.getOutTradeNo();
        result = result * 59 + (($outTradeNo == null) ? 43 : $outTradeNo.hashCode());
        final Object $tradeNo = this.getTradeNo();
        result = result * 59 + (($tradeNo == null) ? 43 : $tradeNo.hashCode());
        final Object $totalAmount = this.getTotalAmount();
        result = result * 59 + (($totalAmount == null) ? 43 : $totalAmount.hashCode());
        final Object $state = this.getState();
        result = result * 59 + (($state == null) ? 43 : $state.hashCode());
        final Object $createTime = this.getCreateTime();
        result = result * 59 + (($createTime == null) ? 43 : $createTime.hashCode());
        final Object $cancelTime = this.getCancelTime();
        result = result * 59 + (($cancelTime == null) ? 43 : $cancelTime.hashCode());
        return result;
    }
    
    @Override
    public String toString() {
        return "TradeVo(body=" + this.getBody() + ", subject=" + this.getSubject() + ", outTradeNo=" + this.getOutTradeNo() + ", tradeNo=" + this.getTradeNo() + ", totalAmount=" + this.getTotalAmount() + ", state=" + this.getState() + ", createTime=" + this.getCreateTime() + ", cancelTime=" + this.getCancelTime() + ")";
    }
}
